import { KeyLabelEnum } from '@/types'

/**
 * 枚举工具类
 */
export class EnumUtil {
  /**
   * 从枚举中获取表情
   * @param enumDef 枚举定义
   * @param key 枚举值名
   */
  public static getEnumLabel(enumDef: KeyLabelEnum, key: string | number) {
    for (const enumKey of Object.keys(enumDef)) {
      const enumItem = enumDef[enumKey]
      if (enumItem.key === key) {
        return enumItem.label
      }
    }
  }

  /**
   * 获取枚举下拉框选项
   * @param enumDef 枚举定义
   */
  public static getEnumOption(enumDef: KeyLabelEnum) {
    return Object.keys(enumDef).map((enumKey) => {
      const enumItem = enumDef[enumKey]
      return {
        label: enumItem.label,
        value: enumItem.key,
      }
    })
  }
}
